
import { Notification ,Message} from 'element-ui';
import Cookies from 'js-cookie'
let util = {

};

/**
 * 删除表单后操作
 */
util.afterDele = function (arrs,id,total) {
    util.success();
    var temp = -1;
    for (var i = 0; i < arrs.length; i++) {
      if (arrs[i].id == id) {
        temp = i;
      }
    }
    if (temp != -1) {
        arrs.splice(temp, 1);
    }
    if(total){
        total--;
    }
};

/**
 * 添加tree后操作
 */
util.afterAddTree = function (arrs,node) {
  if(arrs!=null && arrs.length>0){
       for(var i=0;i<arrs.length;i++){
         if(node.finded){
           break;
         }
         if(arrs[i].id == node.parentId){
           if(!arrs[i].children){
               arrs[i].children=new Array();
           }
           arrs[i].children.push(node);
           node.finded=true;
           break;
         }
         if(arrs[i].children && arrs[i].children.length>0){
             util.afterAddTree(arrs[i].children,node);
         }
       }
  }else{
    arrs=[];
    arrs.push(node);
  }
};

/**
 * 修改tree后操作
 */
util.afterUpdateTree = function (arrs,node) {
  if(!node.oldattrs){
    node.oldattrs=  arrs;
  }
 
  if(arrs!=null && arrs.length>0){
       for(var i=0;i<arrs.length;i++){
        if(node.finded){
          break;
        }
         if(arrs[i].id == node.id){
          node.finded=true
           if(arrs[i].parentId==node.parentId){
            arrs[i]=node;
           }else{
            arrs.splice(i, 1);
            util.afterAddTree(node.oldattrs,node);
           }
          
           break;
         }
         if(arrs[i].children && arrs[i].children.length>0){
             util.afterUpdateTree(arrs[i].children,node);
         }
       }
  }else{
    arrs=[];
    arrs.push(node);
  }
};


/**
 * 删除tree后操作
 */
util.afterDeleTree = function (arrs,node) {
  if(arrs!=null && arrs.length>0){
       for(var i=0;i<arrs.length;i++){
        if(node.finded){
          break;
        }
         if(arrs[i].id == node.id){
          arrs.splice(i, 1);
          node.finded=true;
           break;
         }
         if(arrs[i].children && arrs[i].children.length>0){
             util.afterDeleTree(arrs[i].children,node);
         }
       }
  }
};

util.success = function (msg) {
    if(!msg){
       msg="操作成功";
    }
    Notification({
        title: '成功',
        message: msg,
        type: 'success'
    });
};

util.errorMsg = function (msg) {
    if(!msg){
       msg="发生错误";
    }
    Message({
        message: msg,
        type: 'error'
    });
};

util.dateDate=function(date){
   return util.dateFtt(date,"yyyy-MM-dd");
};

util.dateDatetime=function(datetime){
    return util.dateFtt(datetime);
 };

 util.setCookie=function(k,val) {
  Cookies.set(k, val);
 }

 util.getCookie=function(k){
  return Cookies.get(k);
 }

 util.removeCookie=function(k) {
  Cookies.remove(k);
 }

 /** 保存 */
 util.set=function(k,val){
    localStorage.setItem(k, JSON.stringify(val));
 }
 /** 删除 */
 util.dele=function(k,val){
  localStorage.removeItem(k, JSON.stringify(val));
}
 /**
  * 保存token
  */
 util.setToken=function(val){
    localStorage.setItem("token",val);
 }
 /**
  * 获取token
  */
 util.getToken=function(){
   let userinfo =   util.get("userInfo");
   if(userinfo){
     return userinfo.token;
   }
   return "";
 }

 /**
  * 根据k获取保存的对象
  */
 util.get=function(k){
    let str = localStorage.getItem(k);
    if(str){
        try{
            return JSON.parse(str);
        }catch(e){
            return str;
        }
    }
    return null;
 }

 /**
  * 判断是否登录
  */
 util.checkLogin=function(){
    let token = util.get("token");
    if(token){
        return true;
    }
    return false;
 }

util.dateFtt=function(date,fmt) 
{
    date=date || new Date();
    fmt=fmt || 'yyyy-MM-dd hh:mm:ss';
    if(Object.prototype.toString.call(date).slice(8,-1)!=='Date'){
      date=new Date(date)
    }
    if (/(y+)/.test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
    }
    let o = {
      'M+': date.getMonth() + 1,
      'd+': date.getDate(),
      'h+': date.getHours(),
      'm+': date.getMinutes(),
      's+': date.getSeconds()
    }
    for (let k in o) {
      if (new RegExp(`(${k})`).test(fmt)) {
        let str = o[k] + ''
        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : (('00' + str).substr(str.length)))
      }
    }
    return fmt;
};

 /**
  * 生成验证
  */
 util.getRule=function(arrs){
   let rules = new Object();
   var validateFileUpload = (rule, value, callback) => {
    if (!value) {
      callback(new Error('请选择上传文件'));
    } else if(value.length<=0){
      callback(new Error('请选择上传文件'));
    }else{
      callback();
    }
  };
   rules.phone= [
    { required: true, message: '请填写手机号', trigger: 'blur' },
    { pattern: /^1[3456789]\d{9}$/, message: "手机号格式不正确或者逻辑不对", trigger: "blur"}
   ];
   rules.fileUpload=[
    { validator: validateFileUpload, trigger: 'blur' }
   ];
   if(arrs && arrs.length>0){
      for(var i=0;i<arrs.length;i++){
        rules[arrs[i]]=[ { required: true, message: '必要参数不能为空', trigger: 'blur' }];
      }
   }
   return rules;
}

export default util;
